package com.example.yin.utils;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class SerializeUtil {
    /**
     * 序列化
     */
    public static byte[] serialize(Object object){
        ObjectOutputStream oos=null;//用于将对象输入出字节流输出流对象
        ByteArrayOutputStream baos=null;
        try{
            baos=new ByteArrayOutputStream();//存储序列化后的字节数据
            oos=new ObjectOutputStream(baos);//将对象写入字节流
            oos.writeObject(object);
            //获取序列化后的字节流数组
            byte[] bytes=baos.toByteArray();
            return bytes;

        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 反序列化
     */
    public static Object unserialize(byte[] bytes){
        ByteArrayInputStream bais=null;
        try{
            bais=new ByteArrayInputStream(bytes);//将传入字节数组作为数据源

            ObjectInputStream ois=new ObjectInputStream(bais);//从字节流中读取对象
            return ois.readObject();

        }catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }
}
